﻿using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using RuoVea.Entity;
using System.Collections.Generic;
using System.Threading.Tasks;

namespace RuoVea.Service
{
    public interface ISysUserService
    {
        Task AddUser(AddUserInput input);

        Task<dynamic> List(UserInput input);
        Task ChangeUserStatus(UpdateUserInput input);
        Task DeleteUser(DeleteUserInput input);
        Task<dynamic> GetUser(QueryUserInput input);
        Task<dynamic> GetUserById(long userId);
        Task<dynamic> GetUserOwnRole(QueryUserInput input);
        Task<dynamic> GetUserSelector(UserInput input);
        Task GrantUserRole(UpdateUserInput input);
        Task<dynamic> QueryUserPageList(UserInput input);
        Task ResetUserPwd(QueryUserInput input);
        Task SaveAuthUserToUser(AuthUserInput authUser, UserInput sysUser);
        Task UpdateAvatar(UploadAvatarInput input);
        Task UpdateUser(UpdateUserInput input);
        Task UpdateUserInfo(UpdateUserInput input);
        Task UpdateUserPwd(ChangePasswordUserInput input);

        Task<SysUser> LoginAsync(LoginInput input);
    }
}